数据结构 作业 2、数组、指针、链表
开始时间09/09/2024 12:00:00 AM
结束时间12/25/2024 11:59:00 PM
答题时长155519分钟
答卷类型标准答案
试卷总分100
单选题69 分
2-1

被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为

| 参考答案
答案
B
3分
2-2

数据结构讨论问题的最小单元为

| 参考答案
答案
B
3分
2-3

在决定选取何种存储结构时,一般不考虑( )

| 参考答案
答案
A
3分
2-4

算法分析的目的是( )

| 参考答案
答案
C
3分
2-5

数据结构研究的内容是( )。

| 参考答案
答案
D
3分
2-6

数据元素在计算机存储器内表示时,物理相对位置和逻辑相对位置相同并且是连续的,称之为( )。

| 参考答案
答案
B
3分
2-7

下面数据表格中的每一行称为一个 ▁▁▁▁▁。

学号 姓名 性别 语文 数学 物理 化学 英语 总分
15160101 王克强 87 95 93 76 84 435
15160102 刘铭志 77 82 80 97 95 431
15160103 孙勇 78 85 87 86 65 401
15160104 李瀚东 93 82 72 75 95 417
15160105 赵敏 95 90 88 82 96 451
15160106 张毅 78 76 65 81 80 380
15160107 柳青 82 91 82 84 95 434
15160108 蔡文婷 85 78 80 86 95 424
| 参考答案
答案
B
3分
2-8

关于存储结构

▁▁▁▁▁ 的特点是借助指示元素存储地址的指针来表示数据元素之间的逻辑关系。

| 参考答案
答案
B
3分
2-9

下面描述中正确的为( )。

| 参考答案
答案
C
3分
2-10

在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储( )。

| 参考答案
答案
C
3分
2-11

数据采用链式存储结构时,要求( )

| 参考答案
答案
A
3分
2-12

链表 - 存储密度

链表的存储密度 ▁▁▁▁▁ 。

| 参考答案
答案
C
3分
2-13

数组 A[0..6, 0..5] 的每个元素占 5 个字节,将其按列优先次序存储在起始地址为 1000 的内存单元中,则元素 A[5, 5] 的地址是( )。

| 参考答案
答案
C
4分
2-14

已知二维数组 A 按行优先方式存储,每个元素占用 1 个存储单元。若元素 A[0][0] 的存储地址是 100,A[3][3] 的存储地址是 220,则元素 A[5][5] 的存储地址是:

| 参考答案
答案
B
4分
2-15

单链表 - 插入结点

在单链表中,将 s 所指新结点插入到 p 所指结点之后,其语句应该为 ▁▁▁▁▁ 。

| 参考答案
答案
B
3分
2-16

单链表 - 删除结点

在单链表中,删除 p 所指结点的后继结点,其语句应该为 ▁▁▁▁▁ 。

| 参考答案
答案
D
3分
2-17

双链表 - 插入结点

在双链表中,将 s 所指新结点插入到 p 所指结点之前,其语句应该为 ▁▁▁▁▁ 。

| 参考答案
答案
A
4分
2-18

双链表 - 删除结点

在双链表中,删除 p 所指结点的后继结点,其语句应该为 ▁▁▁▁▁ 。

| 参考答案
答案
C
4分
2-19

在双向链表存储结构中,删除p所指的结点,相应语句为:

| 参考答案
答案
C
4分
2-20

链表不具有的特点是:

| 参考答案
答案
B
3分
2-21

在单链表中,若p所指的结点不是最后结点,在p之后插入s所指结点,则执行

| 参考答案
答案
C
4分
填空题20 分
4-1

对于一个具有n(n≥1)个结点的单链表,插入一个尾结点的时间复杂度是

4分

| 参考答案
填空#1
O(n)
| 评测详情
填空详情
4分
4-2

某个含有n个元素的线性表可以采用单链表或双链表存储结构,但要求快速删除指定位置的结点,应采用

4分

| 参考答案
填空#1
双链表 | 双向链表
| 评测详情
填空详情
4分
4-3

在顺序表中,逻辑上相邻的元素,其物理位置

4分
相邻。在单链表中,逻辑上相邻的元素,其物理位置
4分
相邻。

| 参考答案
填空#1
一定 | 必定 | 必然
填空#2
不一定
| 评测详情
填空详情
8分
4-4

在单链表中若在每个结点中增加一个指针域,所含指针指向前驱结点,这样构成的链表中有两个方向不同的链,称为

4分

| 参考答案
填空#1
双向链表 | 双链表
| 评测详情
填空详情
4分
程序填空题11 分
5-1

单链表删除操作。

#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
typedef int ElemType;

typedef struct LNode {
    ElemType data;
    struct LNode *next; 
} LNode, *LinkList; 

void CreateList(LinkList &L, int n) ;//该函数未显示细节 

int ListDelete_L(LinkList &L, int i) {
    LinkList p, q;
    int j;
    p = L;
    j = 0;
    while (
6分
) { p = p->next; ++j; } if (!(p->next) || (j > i - 1)) return ERROR; q = p->next;
5分
delete q; return OK; } void print(LinkList &L) { LinkList p; int flag=1; p = L->next; while (p) { if(flag) cout << p->data; else cout << " "<< p->data; flag=0; p = p->next; } } int main() { LinkList L; ElemType e; int length; int i; cin >> length; CreateList(L, length); cin >> i; ListDelete_L(L,i); print(L); return 0; }
| 参考答案
填空#1
(p->next) && (j < i - 1)
填空#2
p->next = q->next;
| 评测详情
填空详情
11分